#ifndef __OPENGLFONT_H__
#define __OPENGLFONT_H__

#include "GL/glew.h"
#include "Graphics/FontBase.h"

namespace RayFrame
{
  class DLL_DECLARE OpenGLFont: public FontBase
  {
  public:
    OpenGLFont();
    ~OpenGLFont();

    void SetFontColor(float r,float g,float b, float a);

    bool BuildSystemFont(STRING fontName, int fontHeight);
    //  void BuildTextureFont(GLuint fonttex, int fontHeight, int screenWidth, int screenHeight);
#if defined WIN32
    void BuildGDIFont(LPCTSTR lpszFacename, int fontWeights, int fontHeight);
#endif

  protected:
    virtual void KillFont();
    virtual void PrintSystemFontText(GLint x, GLint y, const char* str);
    //  void PrintTextureText(GLint x, GLint y, const char *string);

#if defined WIN32
    void PrintGDIText(GLint x, GLint y, STRING str);
#endif

  private:

#if defined WIN32
    bool BuildSystemFontWin32(STRING fontName, int fontHeight);
#elif defined LINUX
    bool BuildSystemFontLinux(STRING fontName, int fontHeight);
#endif

  }; 
}

#endif
